/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Negocio;

import Datos.Conexion;
import Datos.Global;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Pedro
 */
public class clsAmbiente {
    
    
    public static void Insertar_Ambiente(String nombre, int capacidad){
        try {
            String sql = "call `insert_Ambiente`(?,?)";
            CallableStatement proc = Conexion.conn.prepareCall(sql);
            proc.setString(1, nombre);
            proc.setInt(2, capacidad);
            
             proc.executeUpdate();  
        } catch (Exception e) {
            System.out.println("Error al insertar el Ambiente" +e );
        }
    }
    
    public static void mostrar_Ambientes (JTable jt  ){
        String sql = "call `get_listaAmbientes`()";
        try {
            ResultSet rs = Conexion.executeQuery(Conexion.conn, sql, null);
            DefaultTableModel dtm = (DefaultTableModel) jt.getModel();
            while (rs.next()){
                Object [] Ambiente  = new Object[4];
                Ambiente[0]= rs.getInt(1);
                Ambiente[1] = rs.getString(2);
                Ambiente[2] = rs.getInt(3);
                Ambiente[3] = rs.getInt(4);
                dtm.addRow(Ambiente);
            }
        } catch (Exception e) {
            System.out.println("Error al mostrar los ambientes "+ e );
        }     
    }
    
    public static void insertar_Mesas (int  capac , int  id_amb){
        try {
            String sql = "call `insert_Mesa`(?,?)";
            CallableStatement proc = Conexion.conn.prepareCall(sql);
            proc.setInt(1, capac);
            proc.setInt(2, id_amb);
            proc.executeUpdate();  
        } catch (Exception e) {
            System.out.println("error al insertar la mesa"+e);
        }
    }
    
    public static int getCapacidadTotal(int idAmbiente){
        try {
            String sql="CALL `capacidad_Mesas`("+idAmbiente+")";
            ResultSet rs=Conexion.executeQuery(Conexion.conn, sql, null);
            while(rs.next()){
                return rs.getInt(1);
            }
        } catch (SQLException ex) {
            System.out.println("error al obtener capacidad total "+ex);
        }
        return -1;
    }
    
    public static int getIdAmbiente(){
        try {
            String sql="CALL `obtener_idAmbiente`()";
            ResultSet rs = Conexion.executeQuery(Conexion.conn, sql, null);
            while (rs.next()){
                return rs.getInt(1);
            }           
        } catch (SQLException ex) {
            System.out.println("error al obtener idambiuente "+ ex);
        }
        return -1;
    }
    
    public static void actualizarAmbiente(String nombre,int capacidad,String estado,int idAmbiente){
        try {
            String  sql="CALL `update_Ambiente`(?,?,?,?)";
            CallableStatement proc=Conexion.conn.prepareCall(sql);
            proc.setString(1, nombre);
            proc.setInt(2, capacidad);
            proc.setString(3, estado);
            proc.setInt(4, idAmbiente);
            
            proc.executeUpdate();           
        } catch (SQLException ex) {
            System.out.println("error al actualizar ambiente "+ex);
        }
    }
    
    public static int getNroMesas(int idAmb){
        try {
            String sql="CALL `getNroMesas`("+idAmb+")";
            ResultSet rs=Conexion.executeQuery(Conexion.conn, sql, null);
            while (rs.next()){
                return rs.getInt(1);
            }
        } catch (SQLException ex) {
            System.out.println("error al obtenre nroMesas "+ex);
        }
        return -1;
    }
    
    
    public static void eliminar_Ambiente (int idAmbiente){
        
        try {
            String sql = "call `deleted_Ambiente`(?)";
            CallableStatement proc=Conexion.conn.prepareCall(sql);
            proc.setInt(1, idAmbiente);
            proc.executeUpdate();
        } catch (Exception e) {
            System.out.println("Error : al eliminar el Ambiente"+e);
        }
        
        
    }
    
    
}
